package itheima.translatePlus;

import itheima.translate.MortonCode;

public class MortonCodeDemo {public static void main(String[] args) {
    // 测试数据
    int row = 5;  // 二进制: 101
    int col = 3;  // 二进制: 011

    // 编码
    String mortonStr = MortonCode.encode(row, col);
    System.out.printf("编码: 行 %d (二进制 %s), 列 %d (二进制 %s)%n",
            row, Integer.toBinaryString(row),
            col, Integer.toBinaryString(col));
    System.out.printf("莫顿码二进制字符串: %s%n%n", mortonStr);

    // 解码
    int[] decoded = MortonCode.decode(mortonStr);
    System.out.printf("解码: 莫顿码 %s%n", mortonStr);
    System.out.printf("解码结果: 行 %d, 列 %d%n", decoded[0], decoded[1]);

    // 验证
    if (decoded[0] == row && decoded[1] == col) {
        System.out.println("编码解码验证成功");
    } else {
        System.out.println("编码解码验证失败");
    }

    System.out.println("---------------------------------------");
    int rowob = 0b101;
    int colob = 0b011;
    long morton = itheima.translatePlus.MortonCode.encodeBitwise(rowob, 0b011);
    String binaryString = Long.toBinaryString(morton);
    System.out.println(binaryString);
    int[] decoded2 = itheima.translatePlus.MortonCode.decodeBitwise(morton);
    System.out.println(decoded2[0] + " " + decoded2[1]);

}
}
